.intel_syntax noprefix
.global astrcat

.text
_astrcat:
astrcat:
	push	ebp
	mov	    ebp,	esp
	push	ebx
	push	edi
	push	esi
	
	mov	eax,	[ebp + 8]	#primeiro parametro
	mov	ecx,	[ebp + 12] #segundo parametro

	mov	edi,	0 #indice da primeira string
	mov	esi,	-1 #indice da segunda string
	mov	ebx,	-1 #indice de retorno da posicao
	
findZeroStr:
	add ebx, 1
	cmp BYTE PTR [eax+ebx], 0
	jne findZeroStr

catStr:
	add esi,1
	cmp BYTE PTR [ecx+esi], 0
	je retorno
	mov edi,  [ecx+esi]
	mov [eax+ebx], edi
	
	add ebx, 1
	jmp catStr
	
retorno:
	add ebx, 1
	mov edi, 0
	mov [eax+ebx], edi
	pop esi
	pop edi
	pop ebx
	pop ebp
	ret
	
